package com.ruoyi.web.service.insect;

import com.ruoyi.web.domain.device.DeviceInfo;
import com.ruoyi.web.domain.warning.FactorInfo;
import com.ruoyi.web.pojo.request.devicedata.DeviceFactorDataRequest;
import com.ruoyi.web.pojo.request.insect.InsectCountDataRequest;
import com.ruoyi.web.pojo.request.insect.InsectListRequest;
import com.ruoyi.web.pojo.request.insect.InsectTopRequest;
import com.ruoyi.web.pojo.vo.devicedata.DeviceContrastDataVO;
import com.ruoyi.web.pojo.vo.devicedata.DeviceFactorDataVO;
import com.ruoyi.web.pojo.vo.devicedata.DevicePhotoVO;
import com.ruoyi.web.pojo.vo.insect.HearderInsectVO;
import com.ruoyi.web.pojo.vo.insect.InsectAnalysisCountVO;
import com.ruoyi.web.pojo.vo.insect.InsectTopVO;

import java.util.List;

public interface InsectSituationService {

    /**
     * @desc  查询用户下虫情设备识虫数量排名
     * @author fwx 2024/3/4 17:13
     **/
    List<InsectTopVO> getInsectTop(InsectTopRequest request);
    
    /**
     * @desc  查询昆虫分析数据
     * @author fwx 2024/3/6 17:13
     **/
    InsectAnalysisCountVO getInsectAnalysisCountVO(InsectListRequest request);

    /**
     * @desc 查询某一天的图片
     * @author fwx 2024/3/7 16:45
     **/
    List<DevicePhotoVO> getByInsectName(String deviceId, String time, String insectName);

    /**
     * @desc  根据设备编号获取因子
     * @author fwx 2024/3/20
     **/
    List<FactorInfo> getFactorById(String deviceIds);

    /**
     * @desc  获取客户下,气象和墒情设备的下因子
     * @author fwx 2024/5/11 14:49
     **/
    List<FactorInfo> getFactorByUser();

    /**
     * @desc  根据因子名称查询账号下设备
     * @author fwx 2024/5/10 16:29
     **/
    List<DeviceInfo> getDeviceByFactor(String factorName);

    /**
     * @desc  统计本月,本季度,本年 统计账号下的昆虫数量
     * @author fwx 2024/4/12 15:37
     **/
    public HearderInsectVO getUserInsectCountData(InsectCountDataRequest request);

    /**
     * @desc  多设备多因子
     * @author fwx 2024/3/8 10:13
     **/
    List<DeviceFactorDataVO> getFactorData(DeviceFactorDataRequest request);

    /**
     * @desc  多设备单因子 - 基础数据
     * @author fwx 2024/3/21 14:26
     **/
    List<DeviceFactorDataVO> getBaseData(DeviceFactorDataRequest request);

    /**
     * @desc 导出  多设备单因子 - 基础数据
     * @author fwx 2024/3/22 16:33
     **/
    String exportBaseData(DeviceFactorDataRequest request);

    /**
     * @desc  综合分析对比杀虫,识虫和因子数据的对比
     * @author fwx 2024/3/9 16:16
     **/
    DeviceContrastDataVO getContrastData(DeviceFactorDataRequest request);

}
